###########################################################################
# TSL-BIBLIOTHEK:	FRM_order_Lib
###########################################################################
# $Revision: 1.6 $
# $Author: cbueche $
# $Date: 2001/04/20 08:52:54 $
# $Source: \\\\S7\\ARCHIVE\\CVS_QS/Schueco/Schuecal2000/WR/Scripts/LIB/FRM/Admin/frm_benutzer_lib/script,v $
# $NoKeywords: $
###########################################################################
#**# 
#*	Diese Library enthlt Funktionen die zur Ausfhrung der
#*	Flight Reservation bentigt werden. 
#**
#*	Diese Function fhrt die Datumszuordnung aus, und whlt im 
#*	menu <b>Administration Benutzer/Gruppen</b> den Benutzer
#*	INHALT:
#*	FRM_open_order ( in table, in test, in idx, in mode )
#*	FRM_results ( in table, in test, in idx, in mode )
#*	FRM_fax_order_no ( in table, in test, in idx, in mode )
#*	get_Preview_info	( in table, in test, in idx, in mode )
#*
#*
#*
#*@Author: cbueche 
#*/

#**
#*	FRM_open_order fhrt das Fenster Open Order aus 
#*	
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
public function FRM_open_order ( in table, in test, in idx, in mode )
{
	auto rc;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=set_window( "Open Order", 5 );
	rc+=FRM_button_set( table, test, "Customer Name" );
	rc+=FRM_button_set( table, test, "Flight Date" );
	rc+=FRM_button_set( table, test, "Order No." );
	rc+=FRM_edit_set( table, test, "CustomerName" );
	rc+=FRM_edit_set( table, test, "FlightDate" );
	rc+=FRM_edit_set( table, test, "OrderNo" );
	rc+=FRM_button_press( table, test, "OK" );
	return rc;
}
#**
#*	Diese Function  whlt in dem Result-Fenster
#*	eine zeile aus der Tabelle
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
public function FRM_results ( in table, in test, in idx, in mode )
{
	auto rc,val;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=FRM_get_next( table, test, val );
	if ( rc == E_FRM_SKIP )
		rc = E_OK;
	else if ( rc == E_OK )
	rc+=set_window( "Search Results", 5 );
	rc+=tbl_set_selected_cell("LIST",val, "#0");
	tl_step("Result",rc,"ausgewhlt " & val );
	rc+=FRM_button_press( table, test, "OK" );
	return rc;
}
#**
#*	Fax Order No wird ausgefhrt
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
public function FRM_fax_order_no ( in table, in test, in idx, in mode )
{
	auto rc,val,text;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=set_window( "Fax Order No", 5 );
	rc+=FRM_obj_type( table, test, "TextName" );
	rc+=FRM_obj_type( table, test, "TextOrder", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextFlight", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextDate", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextFrom", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextTimeFrom", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextTo", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextTimeTo", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextClass", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextTickets", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextPrice", "<kTab>" );
	rc+=FRM_obj_type( table, test, "TextTotal", "<kTab>" );
	rc+=FRM_obj_type( table, test, "txtFaxNumber", "<kTab>" );
	rc+=FRM_button_set( table, test, "Send Signature With Order" );
	rc+=FRM_button_press( table, test, "Clear Signature" );
	rc+=FRM_button_press( table, test, "Cancel" );
	rc+=FRM_button_press( table, test, "Preview Fax" );
	if (win_exists("Flight Reservation Message")==0)
		{
		rc+=set_window ("Flight Reservation Message", 4);
		rc+=obj_get_text("message", text);
		report_msg("Flight Reservation Message " text);
		rc+=button_press ("OK");
		}
	rc+=FRM_get_next( table, test, val );
	if ( rc == E_FRM_SKIP )
		rc = E_OK;
	else
		if(tolower(val) == "ja")
		{
		rc+=button_press("Send" );
		if (win_exists("Flight Reservation Message")==0)
		{
		rc+=set_window ("Flight Reservation Message", 4);
		rc+=obj_get_text("message", text);
		report_msg("Flight Reservation Message " text);
		rc+=button_press ("OK");
		}
		wait(10);
		}
	return rc;
}
#**
#*	get_Preview_info Liest die Faxpreview aus
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
function get_Preview_info (table, test, idx, mode)
{
	auto rc,rc1,comp,val,text1,object,text2,text3, text4,expFile,string_of_Text,exist1[],exist2[],count,i;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	set_window("Fax Preview", 1);
	win_get_text("Fax Preview", text1, 22, 86, 92, 267);
	win_get_text("Fax Preview", text2, 94, 86, 222, 263);
	win_get_text("Fax Preview", text3, 249, 89, 336, 204);
	win_get_text("Fax Preview", text4, 362, 80, 445, 210);
	string_of_Text=text1&"\r\n" &text3;
	count=split ( string_of_Text, exist1 ,"\r\n" );
	string_of_Text=text2"\r\n"&text4;
	count=split ( string_of_Text, exist2 ,"\r\n" );
	i=1;
	if ( mode!= FRM_GEN_MODE)
	{
	while (i <=count)
		{
		rc+=FRM_get_next( table, test, expFile );
		rc+= report_msg (exist1[i]" :" exist2[i] );
		
		comp=(expFile == (exist1[i]" :" exist2[i])) ? E_OK : 1;
		if(comp!=E_OK)
			rc1+=comp;
		if (comp==E_OK)
			tl_step ("Vergleich von Previewinhalt",E_OK,"OK");
		else
			tl_step ("Vergleich von Previewinhalt exp -->>"& expFile,FAIL,"act-->>" & exist1[i] & " :" & exist2[i] );
			i=i+2;
		}
	}
	else
	{
		while (i <=count)
		{
		rc+=FRM_next_row( table );
		rc+=FRM_set( table, test, exist1[i]&" :" & exist2[i] );
		rc = report_msg (exist1[i]" :" exist2[i] );
		i=i+2;
		}
	}
	rc=rc1;
	rc+=FRM_button_press(table, test,"Cancel" );
	rc+=FRM_button_press(table, test,"Send" );
	wait(10);
return rc;
}
#**
#*	FRM_order bearbeitet die Order Information
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
public function FRM_order ( in table, in test, in idx, in mode )
{
	auto rc,text,val;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=set_window( "Flight Reservation", 5 );
	rc+=FRM_edit_set( table, test, "CustomerName" );
	rc+=FRM_edit_set( table, test, "TicketsOrdered" );
	rc+=FRM_button_set( table, test, "First" );
	rc+=FRM_button_set( table, test, "Business" );
	rc+=FRM_button_set( table, test, "Economy" );
	rc+=FRM_edit_set( table, test, "DepartureTime" );
	rc+=FRM_edit_set( table, test, "ArrivalTime" );
	rc+=FRM_edit_set( table, test, "FlightNo" );
	rc+=FRM_edit_set( table, test, "Airline" );
	rc+=FRM_edit_set( table, test, "Price" );
	rc+=FRM_edit_set( table, test, "Total" );
	return rc;
}

public function FRM_order_action ( in table, in test, in idx, in mode )
{
	auto rc,text,val;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=set_window( "Flight Reservation", 5 );
	rc+=FRM_button_press( table, test, "Update Order" );
	rc+=FRM_button_press( table, test, "Delete Order" );
	rc+=FRM_button_press( table, test, "Insert Order" );
	return rc;
}

public function FRM_check_popup_message ( in table, in test, in idx, in mode )
{
	auto text,val,rc,rc3, msg, txt_expected, txt_actual,object;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	
  msg="";
  rc3="";
  txt_expected="";
  object="Message";

  switch ( mode )
  {
	case FRM_SET_MODE:
	case FRM_CHK_MODE:
	  rc=FRM_get_next( table, test, msg );
	  rc=FRM_get_next( table, test, txt_expected );
	  if ( rc == E_FRM_SKIP )
	    rc = E_OK;
	  else 
	    if ( rc != E_OK )
		  return rc;
		else 
		  if ( Ja( msg ) )
		  {	 # Message window mu angezeigt werden
			 set_timeout( 1 );
			 rc3 = win_exists( "Flight Reservation Message", 3 );
			 restore_timeout();
			 if( rc3 == E_OK )
			 {
			   tl_step( "Message", PASS, "Message window shown" );
			   rc+=set_window( "Flight Reservation Message" );
			   # Meldung prfen falls notwendig
			   if ( rc == E_OK )
			   {
			     rc += static_get_text( "message", txt_actual );
				 if ( rc == E_OK )
				   if ( match( txt_actual, txt_expected ) > 0 )
				     tl_step( "Message", PASS, "matches '" & txt_expected & "'" );
				   else 
				   {
					 report_msg( "Message: '" & txt_actual & "'" );
					 tl_step( "Message", FAIL, "does not match '" & txt_expected & "'" );
					 wrlog_println( txt_actual );
				   }
				 else
				   tl_step( "Message", FAIL, "error retrieving message text [rc=" & rc & "]" );
				}
			  }
			  else
			  {
			    tl_step( "Message", FAIL, "No message window shown" );
			  }
			}
			else
			{  #Message window darf nicht angezeigt werden
			   set_timeout( 1 );
			   rc3 = win_exists( "Flight Reservation Message", 1 );
			   restore_timeout();
			   if( rc3 == E_OK )
			   {
				 tl_step( "Message", FAIL, "Message window shown" );
				 rc+=set_window( "Flight Reservation Message" );
				 # Meldung anzeigen
				 rc += static_get_text( "message", txt_actual );
				 if ( rc == E_OK )
				   tl_step( "Message", FAIL, "displayed '" & txt_actual & "'" );
			   }
			   else
			   {
				 tl_step( "Message", PASS, "Message window not shown" );
			   }
			 }
		rc=rc+rc3;
	  break ;
	case FRM_GEN_MODE:
	  rc+=set_window( "Flight Reservation Message" );
	  rc+= obj_exists( object,5 );
	  if ( (rc == E_OK)  )
	  {
	    rc+= static_get_text( object, val );
		if ( rc == E_OK && val == "" )
		  val = "<<clear>>"; 
		rc+=FRM_skip(table);
		rc+=FRM_set( table, test, "ja" );
		rc+=FRM_GEN_set( table, test, object, val, rc );
		rc+=FRM_skip(table);
		rc+=FRM_set( table, test, "OK" );
	  }
	  break ;
	default:
	  return !E_OK;

  }
  if( rc == E_OK && (win_exists( "Flight Reservation Message", 3)== 0 ))
    rc+=FRM_button_press( table, test );
  else
	rc+=FRM_skip(table);  
  return rc;
	return rc;
}

public function FRM_status_bar ( in table, in test, in idx, in mode )
{
	auto rc,text,val;
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=set_window( "Flight Reservation", 5 );
	rc+=FRM_obj_wait_info(table, test, "StatusMessage");
	return rc;
}

#**
#*	...
#*	
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
public function FRM_compare_signature ( in table, in test, in idx, in mode )
{
	auto rc;
	auto tabName, dummy;
	auto expFile, actFile;
	auto expDir, resDir;
	auto expPath, expResPath, actResPath;

	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;

	# retrieve the file names from the table
	rc+=FRM_get_next( table, test, expFile );
	rc+=FRM_get_next( table, test, actFile );
	if ( rc != E_OK )
	{
		tl_step( "FRM_Element_Aktion_Dump", rc, "Beide Dateinamen MSSEN definiert werden" );
		return rc;
	}
	# determine the directory names
	tabName = FRM_get_name( table );
	rc+=split_path( tabName, expDir, dummy, "\\" ); 
	resDir = getvar( "result" );

	# build the full path names
	expPath = join_path( expDir, expFile, "\\" );
	expResPath = join_path( resDir, expFile, "\\" );
	actResPath = join_path( resDir, actFile, "\\" );

	# get the expected bitmap
	rc+=win_move ("Fax Preview", 10, 214);
	rc+=set_window ("Fax Preview", 1);
	rc+=obj_get_bitmap("Picture1", 0, 0, 182, 62, actResPath );
	if ( rc != E_OK )
		return rc;

	rc+=AUT_DOS_copy( expPath, expResPath );

	# compare the files
	rc+=compare_bitmap_files( actResPath, expResPath, 0 );
	if ( rc != E_OK )
	{
		tl_step( "compare_bitmap_files:", rc, "Beide Dateinamen MSSEN definiert werden" );
		return rc;
	}
	else
		tl_step( "compare_bitmap_files:", rc, " OK" );
	return rc;
}
#**
#*	diese function speichert ein Bitmapfile in dem verzeichnis 
#*	aus der die Exceltabelle ausgefhrt wird
#*	
#*
#* @param table	(in)	Index der Tabelle mit den Testdaten
#* @param test	(in)	Name der Spalte mit den Testdaten
#* @param idx	(in)	Name des Testblocks
#* @param mode	(in)	SET/CHK/GEN
#* @return
#*	E_OK:	erfolgreich
#*	else:	fehlerhaft
#*/
public function FRM_create_Signatur ( in table, in test, in idx, in mode )
{
auto tabName, expDir,dummy, expResPath,rc,val,text;

	tabName = FRM_get_name( table );
	rc+=split_path( tabName, expDir, dummy, "\\" ); 
	rc = FRM_init_block( table, test, idx, mode );
	if ( rc != E_OK )
		return rc;
	rc+=FRM_get_next( table, test, val );
	if ( rc == E_FRM_SKIP )
		rc = E_OK;
	else if ( rc == E_OK )
	{
	rc=win_move ("Fax Order No", 14, 368);
	rc+=set_window ("Fax Order No", 3);
	rc+=button_press ("Clear Signature");
	rc+=obj_mouse_click ("picSignature", 7, 43, LEFT);
	call "TST\\Signatur"();
	text=expDir & "\\"& val;
	rc+=obj_get_bitmap("picSignature",0,0, 182, 62, text);
	}
return rc;
}
